Typing is part of many scenarios on a mobile device, including writing a text message, writing an email, searching for a contact, and typing a URL (uniform resource locator), for example. Typing on a mobile device can be slow and frustrating. This can be especially true when using an on-screen software keyboard.
One solution to this problem is known as a soft input panel. In a soft input panel, a region of the screen may display suggested word predictions based on the characters that a user has entered so far into a text input field. The suggested words change as the user continues to enter characters into the field. When the user sees a word prediction that matches the word that the user is entering, the user may select the word prediction and the selected word is placed in the text input field as a replacement for the characters entered by the user.
Typically, the word predictions shown to the user are generated by matching the entered characters against words in a dictionary, and then presenting a ranked subset of the matching words based on a likelihood that each word is the word that the user intends to enter. The likelihood may be based on the overall probability of usage of each matching word by the general population.
One drawback to such a method for providing word predictions is that it fails to take into account a context associated with the characters being entered. The context may include the application that the user is using (i.e., short message service (SMS) or email application), and the parties that the user is communicating with, a location of the user, the date or time of day, who the user communicated with earlier, or even a mood associated with the user. Typically, a user uses a set of vocabulary that may vary depending on the context of the conversation. For example, a user may use a different set of phrases when in conversations with business contacts than in conversations with friends, or may use a different set of phrases when using an SMS application than when using a word processing application. By not considering the context when generating predictions, the user may receive word predictions that are too broad, or that are inappropriate for the particular context.